package java_thread;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

// 练习Thread , 实现多线程同步下载
// thread 方法和 Runable 方法分别实现 多线程
//public class TestThread2 extends Thread{
public class TestThread2 implements Runnable{
    private  String url;  //网络图片的地址
    private  String name; // 网络图片的名称

    public TestThread2 (String url,String name){
        this.name = name;
        this.url = url;
    }
    // 线程的执行体
    @Override
    public void run() {
        WebDownLoader webDownLoader =  new WebDownLoader();
        webDownLoader.download(url,name);
        System.out.println("下载了文件名为："+name);
    }

    public static void main(String[] args) {
        TestThread2 t1 = new TestThread2("https://www.westos.org/img/pic-1.png","1.jpg");
        TestThread2 t2 = new TestThread2("https://www.westos.org/img/pic-2.png","2.jpg");
        TestThread2 t3 = new TestThread2("https://www.westos.org/img/pic-3.png","3.jpg");
        new  Thread(t1).start();
        new  Thread(t2).start();
        new  Thread(t3).start();
        //先下载t1
//        t1.start();
//        //再下载t2
//        t2.start();
//        //最后下载t3
//        t3.start();
        // 结果顺序，并非123,总结： 线程的执行，是同步执行的，
    }

}


// 下载器
class  WebDownLoader{
    //下载方法
    public static void download(String url,String name) {
        try {
            FileUtils.copyURLToFile(new URL(url),new File(name));
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("IO异常，downloader 方法出现问题");
        }
    }
}